package pos.Junit;

import java.util.List;

import pos.dominio.Carta;
import pos.dominio.Jugador;
import pos.dominio.LeIntroverti;
import pos.dominio.MazoCentral;
import pos.dominio.Noble;
import pos.dominio.PartidaFacade;
import pos.dominio.Tablero;
import junit.framework.TestCase;

public class TestLeIntroverti extends TestCase {

	private PartidaFacade partida;
	private Tablero tablero;
	private Jugador jugador;
	private MazoCentral<Carta> mc;
	private LeIntroverti noble;
	private Carta carta;
	
	public void testLeFou() {
	    PartidaFacade partida = new PartidaFacade();
		Tablero tablero = partida.getTablero();
		assertTrue(new LeIntroverti("LeIntroverti", 2, partida, tablero) instanceof LeIntroverti);
	}

	

	protected void setUp() throws Exception {
		partida = new PartidaFacade();
		tablero = partida.getTablero();
		tablero.crearTablero();
		jugador = new Jugador("Javi", 1, partida);
		noble = new LeIntroverti("pra", 3, partida, tablero);
		mc= new MazoCentral<Carta>();
		
	}

	protected void tearDown() throws Exception {
		super.tearDown();
	}

	public void testRealizarEfecto(){
		Noble noble= (Noble) this.tablero.getMazosCentrales().get(0).getNoble();
		this.noble.realizarEfecto(jugador);
		assertTrue("Comprobar que hay nobles en juego",!this.tablero.getMazosCentrales().get(0).getNoble().equals(null));
		Noble nobleAux = (Noble) this.tablero.getMazosCentrales().get(0).getNoble();
		assertTrue("Comprobar que elimina un noble distinto a LeIntroverti",!this.noble.equals(noble));
		assertEquals("Comprobar que no se ha eliminado el Noble LeIntroverti", noble, nobleAux);
		
	}

	public void testCrearListaPuntuacion() {
		assertTrue("Comprobar que sea una de su Tipo", noble.crearListaPuntuacion() instanceof List<?>);
		List<Integer> lsp = noble.crearListaPuntuacion();
		assertTrue(lsp.get(0) == 5 && lsp.get(1) == 8 && lsp.get(2) == 12);
	}

	
}
